#ifndef TBATTERY_H
#define TBATTERY_H

#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class widget; }
QT_END_NAMESPACE

class TBattery : public QWidget
{
    Q_OBJECT

    Q_PROPERTY(int powerLevel READ powerLevel WRITE setPowerLevel NOTIFY powerLevelChanged)

    Q_PROPERTY(int warnLevel READ warnLevel WRITE setWarnLevel)

public:
    static constexpr int kInitPowerLevel = 60;

    TBattery(QWidget *parent = nullptr);
    ~TBattery();
    void setPowerLevel(int pow);
    int powerLevel();
    void setWarnLevel(int warn);
    int warnLevel();
    QSize sizeHint(); // 重定义的函数, 设置组件的合适大小

signals:
    void powerLevelChanged(int);    // 自定义信号

private:
    QColor colorBack = Qt::white;   // 背景色
    QColor colorBorder = Qt::black; // 电池边框颜色
    QColor colorPower = Qt::green;  // 电量柱颜色
    QColor colorWarning = Qt::red;  // 电量短缺时的颜色
    int m_powerLevel = 60; // 电量值0~100, 属性powerLevel的存储变量
    int m_warnLevel = 20;  // 电量低阈值, 属性warnLevel的存储变量

//    Ui::TBattery *ui;

protected:
    void paintEvent(QPaintEvent *event) override; // 绘制组件并显示效果

};
#endif // TBATTERY_H
